ASP.NET Core Comparison between CookieOptions and SessionOptions
ASP.NET Core में CookieOptions और SessionOptions दोनों कुकी से जुड़े हैं, लेकिन उनका उद्देश्य अलग-अलग स्तर पर होता है। एक generic cookie control के लिए है, जबकि दूसरा session management के लिए।
1. CookieOptions क्या है?
CookieOptions का उपयोग तब होता है जब आप manually cookie create या modify करते हैं।
Example:
Response.Cookies.Append("MyCookie", "value", new CookieOptions
{
Expires = DateTimeOffset.UtcNow.AddDays(7),
HttpOnly = true,
Secure = true,
SameSite = SameSiteMode.Strict
});
Key Points:
- Direct cookie creation/control
- Client-side behavior define करता है
- किसी भी custom cookie पर लागू
2. SessionOptions क्या है?
SessionOptions का उपयोग ASP.NET Core के session middleware को configure करने के लिए होता है।
Example:
builder.Services.AddSession(options =>
{
options.IdleTimeout = TimeSpan.FromMinutes(20);
options.Cookie.HttpOnly = true;
options.Cookie.IsEssential = true;
});
Key Points:
- Session system को configure करता है
- Session cookie (जैसे .AspNetCore.Session) को indirectly control करता है
- Server-side session behavior भी define करता है
3. Side-by-Side Comparison
|
पहलू |
CookieOptions |
SessionOptions |
|
उपयोग |
Manual cookie बनाना |
Session system configure करना |
|
स्तर |
Low-level (cookie level) |
High-level (session level) |
|
डेटा
कहाँ |
Cookie में
(client-side) |
Session data server-side |
|
lifetime control |
Expires, MaxAge |
IdleTimeout (server-side) |
|
cookie access |
Direct |
options.Cookie के
माध्यम से |
|
dependency |
स्वतंत्र |
Session middleware पर
निर्भर |
4. Lifetime में बड़ा महत्वपूर्ण अंतर
- Browser को बताता है: “कुकी कब तक रखनी है”
- Expires = DateTimeOffset.UtcNow.AddDays(7)
- Client-side control
- Server को बताता है: “Session कब expire होगा”
- IdleTimeout = TimeSpan.FromMinutes(20)
- Server-side control
5. Combined Behavior (Real Scenario)
6. कब क्या उपयोग करें?
- Custom cookie बनानी हो
- Remember me, tracking, preferences आदि
- User session manage करना हो
- Login state, cart, temporary data आदि
टिप्पणियाँ
एक टिप्पणी भेजें